// 数据库增删改查的封装
module.exports = {
    // 增加
    insert(CollectionName,insertData){
        return new Promise((resolve,reject)=>{
            //node 错误优先回调原则
            CollectionName.insertMany(insertData,(err)=>{
                if(err) throw err;
                resolve()
            })
        })
    },

    // 删除
    delete(CollectionName,whereData,deleteNum){
        return new Promise(resolve =>{
            const deleteType = deleteNum === 1 ? 'deleteMany' :' deleteOne'
            CollectionName[deleteType](whereData,err=>{
                if(err) throw err;
                resolve()
            })
        })
    },

    // 更新 
    //CollectionName  集合名称
    //whereData  查询更新的条件
    //updateData 需要更新的字段和内容
    // updateNum  更新的类型 更新一条 还是多条 如果为1  则更新多条
    update (CollectionName,whereData,updateData,updateNum){
        return new Promise (resolve =>{
            const updateType = updateNum === 1 ? 'updateMany' :'updateOne'
            CollectionName[updateType](whereData,updateData,err=>{
                if(err) throw err;
                resolve()
            })
        })

    },

    // 查询数据
    find(CollectionName,whereData,showData){
        return new Promise(resolve =>{
            CollectionName.find(whereData,showData).exec((err,data)=>{
                if(err) throw err;
                resolve(data)
            })
        })
    },

    // 页码
    paging (CollectionName, whereData, showData, count, limitNum) {
        limitNum = limitNum || 10 
        count = count || 1
        return new Promise(resolve => {
          // 页码 不是从0  开始， 是从1开始，所以要减1
          CollectionName.find(whereData, showData).limit(limitNum).skip((count - 1) * limitNum).exec((err, data) => {
            if (err) throw err
            resolve(data)
          })
        })
      }
}